package org.lestr.secuel.m3ds.objets3D;

import org.lestr.secuel.m3ds.objets2D.IImage;

public interface Materiau {


    /** D�fini la nom du mat�riau */
    public void définirNom(String nom);


    /** Retourne le nom du mat�riau */
    public String obtenirNom();


    /** D�fini la couleur vue � la lumi�re ambiante */
    public void définirCouleurAmbiante(double rouge,
                                       double vert,
                                       double bleu);


    /** Retourne la composante rouge de la couleur */
    public double obtenirRougeAmbiant();


    /** Retourne la composante verte de la couleur */
    public double obtenirVertAmbiant();


    /** Retourne la composante bleue de la couleur */
    public double obtenirBleuAmbiant();


    /** D�fini la couleur vue � la lumi�re diffuse (couleur "normale") */
    public void définirCouleurDiffuse(double rouge,
                                      double vert,
                                      double bleu);


    /** Retourne la composante rouge de la couleur */
    public double obtenirRougeDiffue();


    /** Retourne la composante verte de la couleur */
    public double obtenirVertDiffue();


    /** Retourne la composante bleue de la couleur */
    public double obtenirBleuDiffue();


    /** D�fini la couleur vue � la lumi�re sp�culaire (reflets) */
    public void définirCouleurSpéculaire(double rouge,
                                         double vert,
                                         double bleu);


    /** Retourne la composante rouge de la couleur */
    public double obtenirRougeSpéculaire();


    /** Retourne la composante verte de la couleur */
    public double obtenirVertSpéculaire();


    /** Retourne la composante bleue de la couleur */
    public double obtenirBleuSpéculaire();


    /** D�fini la couleur de la lumi�re �mise par l'objet */
    public void définirCouleurEmissive(double rouge,
                                       double vert,
                                       double bleu);


    /** Retourne la composante rouge de la couleur */
    public double obtenirRougeEmissif();


    /** Retourne la composante verte de la couleur */
    public double obtenirVertEmissif();


    /** Retourne la composante bleue de la couleur */
    public double obtenirBleuEmissif();


    /** D�fini une image de texture */
    public void définirImage(IImage image);


    /** Retourne l'image de texture */
    public IImage obtenirImage();


}// FIN Interface
